package com.ruoyi.project.system.score.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;

/**
 * 作品评分记录对象 comp_score
 *
 * @author ruoyi
 * @date 2025-11-04
 */
        public class CompScore extends BaseEntity
        {
        private static final long serialVersionUID = 1L;

                /** 评分ID，主键 */
        private Long id;

                /** 关联作品ID（外键，关联作品表） */
                @Excel(name = "关联作品ID", readConverterExp = "外=键，关联作品表")
        private Long workId;

                /** 评分用户ID（外键，关联用户表，如评委/管理员） */
                @Excel(name = "评分用户ID", readConverterExp = "外=键，关联用户表，如评委/管理员")
        private Long userId;

                /** 评分值（支持小数，如 9.5，范围可通过业务逻辑控制） */
                @Excel(name = "评分值", readConverterExp = "支=持小数，如,9=.5，范围可通过业务逻辑控制")
        private BigDecimal score;

                /** 评分维度（如“创意性”“技术性”“表现力”等） */
                @Excel(name = "评分维度", readConverterExp = "如=“创意性”“技术性”“表现力”等")
        private String dimension;

                /** 评分附带评语（可选） */
                @Excel(name = "评分附带评语", readConverterExp = "可=选")
        private String comment;

                /** 评分时间 */
                @JsonFormat(pattern = "yyyy-MM-dd")
                @Excel(name = "评分时间", width = 30, dateFormat = "yyyy-MM-dd")
        private Date scoreTime;


        // ====================================== 自定义字段开始 ======================================
        // 在此处添加的自定义字段，重新生成代码时不会被覆盖
        // 示例：
        // private String customField; // 自定义扩展字段
        // ====================================== 自定义字段结束 ======================================


        // ====================================== 自定义方法开始 ======================================
        // 在此处添加的自定义getter/setter或其他方法，重新生成代码时不会被覆盖
        // 示例：
        // public String getCustomField() { return customField; }
        // public void setCustomField(String customField) { this.customField = customField; }
        // ====================================== 自定义方法结束 ======================================


                public void setId(Long id)
                {
                    this.id = id;
                }

                public Long getId()
                {
                    return id;
                }
                public void setWorkId(Long workId)
                {
                    this.workId = workId;
                }

                public Long getWorkId()
                {
                    return workId;
                }
                public void setUserId(Long userId)
                {
                    this.userId = userId;
                }

                public Long getUserId()
                {
                    return userId;
                }
                public void setScore(BigDecimal score)
                {
                    this.score = score;
                }

                public BigDecimal getScore()
                {
                    return score;
                }
                public void setDimension(String dimension)
                {
                    this.dimension = dimension;
                }

                public String getDimension()
                {
                    return dimension;
                }
                public void setComment(String comment)
                {
                    this.comment = comment;
                }

                public String getComment()
                {
                    return comment;
                }
                public void setScoreTime(Date scoreTime)
                {
                    this.scoreTime = scoreTime;
                }

                public Date getScoreTime()
                {
                    return scoreTime;
                }



        @Override
        public String toString() {
            return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("workId", getWorkId())
                .append("userId", getUserId())
                .append("score", getScore())
                .append("dimension", getDimension())
                .append("comment", getComment())
                .append("scoreTime", getScoreTime())
                    // ====================================== 自定义toString开始 ======================================
                    // 手动添加自定义字段的toString内容，例如：
                    // .append("customField", getCustomField())
                    // ====================================== 自定义toString结束 ======================================
                    .toString();
        }
}